/**
* DoExpressCheckoutPaymentResponseType.java
*
* This file was auto-generated from WSDL
* by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.
*/
package PayPalAPI.api.ebay;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.text.ParseException;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.javacommerce.paypal.ws.API;
import CoreComponentTypes.apis.ebay.BasicAmountType;
import eBLBaseComponents.apis.ebay.CurrencyCodeType;
import eBLBaseComponents.apis.ebay.DoExpressCheckoutPaymentResponseDetailsType;
import eBLBaseComponents.apis.ebay.PaymentCodeType;
import eBLBaseComponents.apis.ebay.PaymentStatusCodeType;
import eBLBaseComponents.apis.ebay.PaymentTransactionCodeType;
import eBLBaseComponents.apis.ebay.PendingStatusCodeType;
import eBLBaseComponents.apis.ebay.ReversalReasonCodeType;
public class DoExpressCheckoutPaymentResponseType extends eBLBaseComponents.apis.ebay.AbstractResponseType implements java.io.Serializable {
/**
*
*/
private static final long serialVersionUID = 456779665229441455L;
private static final Log LOG = LogFactory.getLog(DoExpressCheckoutPaymentResponseType.class.getName());
private eBLBaseComponents.apis.ebay.DoExpressCheckoutPaymentResponseDetailsType doExpressCheckoutPaymentResponseDetails;
public DoExpressCheckoutPaymentResponseType() {
}
public DoExpressCheckoutPaymentResponseType(
eBLBaseComponents.apis.ebay.DoExpressCheckoutPaymentResponseDetailsType doExpressCheckoutPaymentResponseDetails) {
this.doExpressCheckoutPaymentResponseDetails = doExpressCheckoutPaymentResponseDetails;
}
public DoExpressCheckoutPaymentResponseType(InputStream _is) throws UnsupportedEncodingException, IOException, ParseException {
setDoExpressCheckoutPaymentResponseDetails(new DoExpressCheckoutPaymentResponseDetailsType());
BufferedReader reader = new BufferedReader(new InputStreamReader(_is));
String currentLine = null;
Map<String, String> delayedFields = new HashMap<String, String>();
while ((currentLine = reader.readLine()) != null) {
String[] pairs = StringUtils.split(currentLine, "&");
if (LOG.isDebugEnabled()) {
LOG.debug("Read line [" + currentLine + "], split into " + pairs.length + " pairs.");
}
for (int i = 0; i < pairs.length; i++) {
String[] nvp = StringUtils.split(pairs[i], "=");
String name = nvp[0];
String value = null;
if (nvp.length == 2) {
value = URLDecoder.decode(nvp[1], "UTF-8");
}
if (LOG.isDebugEnabled()) {
LOG.debug("Read pair [" + name + "]/[" + value + "]");
}
if (isCommonField(name)) {
processCommonField(name, value);
}
// Process lines
else if (name.equals(FIELD_TOKEN)) {
getDoExpressCheckoutPaymentResponseDetails().setToken(value);
}
else if (name.equals(FIELD_TRANSACTIONID)) {
getDoExpressCheckoutPaymentResponseDetails().getPaymentInfo().setTransactionID(value);
}
else if (name.equals(FIELD_TRANSACTIONTYPE)) {
getDoExpressCheckoutPaymentResponseDetails().getPaymentInfo().setTransactionType(PaymentTransactionCodeType.fromString(value));
}
else if (name.equals(FIELD_PAYMENTTYPE)) {
getDoExpressCheckoutPaymentResponseDetails().getPaymentInfo().setPaymentType(PaymentCodeType.fromString(value));
}
else if (name.equals(FIELD_ORDERTIME)) {
getDoExpressCheckoutPaymentResponseDetails().getPaymentInfo().setPaymentDate(API.apiStringToCalendar(value));
}
else if (name.equals(FIELD_AMT)) {
delayedFields.put(FIELD_AMT, value);
}
else if (name.equals(FIELD_CURRENCYCODE)) {
delayedFields.put(FIELD_CURRENCYCODE, value);
}
else if (name.equals(FIELD_FEEAMT)) {
delayedFields.put(FIELD_FEEAMT, value);
}
else if (name.equals(FIELD_SETTLEAMOUNT)) {
delayedFields.put(FIELD_SETTLEAMOUNT, value);
}
else if (name.equals(FIELD_TAXAMOUNT)) {
delayedFields.put(FIELD_TAXAMOUNT, value);
}
else if (name.equals(FIELD_EXCHANGERATE)) {
getDoExpressCheckoutPaymentResponseDetails().getPaymentInfo().setExchangeRate(value);
}
else if (name.equals(FIELD_PAYMENTSTATUS)) {
getDoExpressCheckoutPaymentResponseDetails().getPaymentInfo().setPaymentStatus(PaymentStatusCodeType.fromString(value));
}
else if (name.equals(FIELD_PENDINGREASON)) {
getDoExpressCheckoutPaymentResponseDetails().getPaymentInfo().setPendingReason(PendingStatusCodeType.fromString(value));
}
else if (name.equals(FIELD_REASONCODE)) {
getDoExpressCheckoutPaymentResponseDetails().getPaymentInfo().setReasonCode(ReversalReasonCodeType.fromString(value));
}
else if (LOG.isErrorEnabled()) {
LOG.error("Unknown field returned in DoExpressCheckoutPayment: [" + name + "]");
}
}
}
// Process the delayed fields
if (delayedFields.containsKey(FIELD_AMT)) {
BasicAmountType amount = new BasicAmountType((String) delayedFields.get(FIELD_AMT));
if (delayedFields.containsKey(FIELD_CURRENCYCODE)) {
amount.setCurrencyID(CurrencyCodeType.fromString((String) delayedFields.get(FIELD_CURRENCYCODE)));
}
getDoExpressCheckoutPaymentResponseDetails().getPaymentInfo().setGrossAmount(amount);
}
if (delayedFields.containsKey(FIELD_FEEAMT)) {
BasicAmountType amount = new BasicAmountType((String) delayedFields.get(FIELD_FEEAMT));
if (delayedFields.containsKey(FIELD_CURRENCYCODE)) {
amount.setCurrencyID(CurrencyCodeType.fromString((String) delayedFields.get(FIELD_CURRENCYCODE)));
}
getDoExpressCheckoutPaymentResponseDetails().getPaymentInfo().setFeeAmount(amount);
}
if (delayedFields.containsKey(FIELD_SETTLEAMOUNT)) {
BasicAmountType amount = new BasicAmountType((String) delayedFields.get(FIELD_SETTLEAMOUNT));
if (delayedFields.containsKey(FIELD_CURRENCYCODE)) {
amount.setCurrencyID(CurrencyCodeType.fromString((String) delayedFields.get(FIELD_CURRENCYCODE)));
}
getDoExpressCheckoutPaymentResponseDetails().getPaymentInfo().setSettleAmount(amount);
}
if (delayedFields.containsKey(FIELD_TAXAMOUNT)) {
BasicAmountType amount = new BasicAmountType((String) delayedFields.get(FIELD_TAXAMOUNT));
if (delayedFields.containsKey(FIELD_CURRENCYCODE)) {
amount.setCurrencyID(CurrencyCodeType.fromString((String) delayedFields.get(FIELD_CURRENCYCODE)));
}
getDoExpressCheckoutPaymentResponseDetails().getPaymentInfo().setTaxAmount(amount);
}
}
/**
* Gets the doExpressCheckoutPaymentResponseDetails value for this DoExpressCheckoutPaymentResponseType.
*
* @return doExpressCheckoutPaymentResponseDetails
*/
public eBLBaseComponents.apis.ebay.DoExpressCheckoutPaymentResponseDetailsType getDoExpressCheckoutPaymentResponseDetails() {
return doExpressCheckoutPaymentResponseDetails;
}
/**
* Sets the doExpressCheckoutPaymentResponseDetails value for this DoExpressCheckoutPaymentResponseType.
*
* @param doExpressCheckoutPaymentResponseDetails
*/
public void setDoExpressCheckoutPaymentResponseDetails(eBLBaseComponents.apis.ebay.DoExpressCheckoutPaymentResponseDetailsType doExpressCheckoutPaymentResponseDetails) {
this.doExpressCheckoutPaymentResponseDetails = doExpressCheckoutPaymentResponseDetails;
}
private java.lang.Object __equalsCalc = null;
public synchronized boolean equals(java.lang.Object obj) {
if (!(obj instanceof DoExpressCheckoutPaymentResponseType)) return false;
DoExpressCheckoutPaymentResponseType other = (DoExpressCheckoutPaymentResponseType) obj;
if (obj == null) return false;
if (this == obj) return true;
if (__equalsCalc != null) {
return (__equalsCalc == obj);
}
__equalsCalc = obj;
boolean _equals;
_equals = super.equals(obj) &&
((this.doExpressCheckoutPaymentResponseDetails==null && other.getDoExpressCheckoutPaymentResponseDetails()==null) ||
(this.doExpressCheckoutPaymentResponseDetails!=null &&
this.doExpressCheckoutPaymentResponseDetails.equals(other.getDoExpressCheckoutPaymentResponseDetails())));
__equalsCalc = null;
return _equals;
}
private boolean __hashCodeCalc = false;
public synchronized int hashCode() {
if (__hashCodeCalc) {
return 0;
}
__hashCodeCalc = true;
int _hashCode = super.hashCode();
if (getDoExpressCheckoutPaymentResponseDetails() != null) {
_hashCode += getDoExpressCheckoutPaymentResponseDetails().hashCode();
}
__hashCodeCalc = false;
return _hashCode;
}
}